package com.example.mq.mqserver.core;

import java.io.Serializable;

public class BasicProperties implements Serializable {

    private String messageId;
    //是一个消息带有的内容，和bindingKey做匹配
    //如果当前交换机的类型是DIRECT,则此时routingKey表示要转发的队列名
    //如果当前交换机的类型是FANOUT,此时routingKey无意义（不使用）
    //如果当前交换机的类型是TOPIC,此时routingKey要和bindingKey做匹配
    private String routingKey;
    //这个属性表示消息是否要持久化，1则是不持久化，2则是持久化
    private int deliverMode = 1;

    //针对RabbitMQ来说，还有很多基本属性，这里并没有实现

    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getRoutingKey() {
        return routingKey;
    }

    public void setRoutingKey(String routingKey) {
        this.routingKey = routingKey;
    }

    public int getDeliverMode() {
        return deliverMode;
    }

    public void setDeliverMode(int deliverMode) {
        this.deliverMode = deliverMode;
    }

    @Override
    public String toString() {
        return "BasicProperties{" +
                "messageId='" + messageId + '\'' +
                ", routingKey='" + routingKey + '\'' +
                ", deliverMode=" + deliverMode +
                '}';
    }
}
